package com.sztx.pay.center.core.service;

import java.util.List;

import com.sztx.pay.center.dataaccess.domain.OrderB2cDumpDO;
import com.sztx.pay.center.dataaccess.domain.OrderRechargeDumpDO;
import com.sztx.pay.center.dataaccess.domain.OrderRefundDumpDO;
import com.sztx.pay.center.dataaccess.domain.OrderTransferDumpDO;
import com.sztx.pay.center.dataaccess.domain.OrderWithdrawDumpDO;
import com.sztx.pay.center.dataaccess.domain.UserActFlowDumpDO;
import com.sztx.se.core.service.BaseService;

public interface DumpDataHandleService extends BaseService {
	
	void addSuccessDumpRecord(int type);
	
	void addFailedDumpRecord(int type);
	
	void addSuccessDumpRecordByCount(int type, int num);
	
	void addFailedDumpRecordByCount(int type, int num);
	
	
	List<OrderB2cDumpDO> findUnHandleB2cOrder(Integer taskItemNum, List<String> taskItems, Integer fetchNum);

	boolean updateHandleB2cOrder(String tradeOrderNo,  List<Integer> oldStatus, Integer newStatus, Integer num);
	
	boolean batchUpdateHandleB2cOrder(OrderB2cDumpDO[] orderB2cDOs, List<Integer> oldStatus, Integer newStatus, Integer num);
	
	void dumpB2cOrder(OrderB2cDumpDO[] orderB2cDOs);
	
	List<OrderRechargeDumpDO> findUnHandleRechargeOrder(Integer taskItemNum, List<String> taskItems, Integer fetchNum);
	
	boolean updateHandleRechargeOrder(String tradeOrderNo,  List<Integer> oldStatus, Integer newStatus, Integer num);
	
	boolean batchUpdateHandleRechargeOrder(OrderRechargeDumpDO[] orderRechargeDOs, List<Integer> oldStatus, Integer newStatus, Integer num);

	void dumpRechargeOrder(OrderRechargeDumpDO[] orderRechargeDumpDOs);
	
	
	
	

	List<OrderRefundDumpDO> findUnHandleRefundOrder(Integer taskItemNum, List<String> taskItems, Integer fetchNum);

	boolean updateHandleRefundOrder(String tradeOrderNo,  List<Integer> oldStatus, Integer newStatus, Integer num);
	
	boolean batchUpdateHandleRefundOrder(OrderRefundDumpDO[] orderRefundDOs, List<Integer> oldStatus, Integer newStatus, Integer num);
	
	void dumpRefundOrder(OrderRefundDumpDO[] orderRefundDOs);
	
	
	List<OrderWithdrawDumpDO> findUnHandleWithdrawOrder(Integer taskItemNum, List<String> taskItems, Integer fetchNum);

	boolean updateHandleWithdrawOrder(String tradeOrderNo,  List<Integer> oldStatus, Integer newStatus, Integer num);
	
	boolean batchUpdateHandleWithdrawOrder(OrderWithdrawDumpDO[] orderWithdrawDOs, List<Integer> oldStatus, Integer newStatus, Integer num);
	
	void dumpWithdrawOrder(OrderWithdrawDumpDO[] orderWithdrawDOs);
	
	
	List<OrderTransferDumpDO> findUnHandleTransferOrder(Integer taskItemNum, List<String> taskItems, Integer fetchNum);
	
	boolean updateHandleTransferOrder(String tradeOrderNo,  List<Integer> oldStatus, Integer newStatus, Integer num);
	
	boolean batchUpdateHandleTransferOrder(OrderTransferDumpDO[] orderTransferDOs, List<Integer> oldStatus, Integer newStatus, Integer num);
	
	void dumpTransferOrder(OrderTransferDumpDO[] orderTransferDOs);
	
	
	List<UserActFlowDumpDO> findUnHandleUserActFlow(Integer taskItemNum, List<String> taskItems, Integer fetchNum);
	
	boolean updateHandleUserActFlow(String tradeOrderNo,  List<Integer> oldStatus, Integer newStatus, Integer num);
	
	boolean batchUpdateHandleUserActFlow(UserActFlowDumpDO[] userActFlowDumpDODOs, List<Integer> oldStatus, Integer newStatus, Integer num);
	
	void dumpUserActFlow(UserActFlowDumpDO[] userActFlowDumpDO);
	
	void updateDumpRecordAddTime(int type);

}
